Search Forums

(Advanced Search)

Latest Threads
Forum: Obi Rope
Last Post: bugbeeb
Today, 01:25 AM
» Replies: 0
» Views: 7
Towel simulation in Quest
Forum: Obi Cloth
Last Post: josemendez
Yesterday, 02:27 PM
» Replies: 3
» Views: 39
Cloth curtain
Forum: Obi Cloth
Last Post: balaji.v
Yesterday, 12:32 PM
» Replies: 2
» Views: 26
Dynamic Rod Attachment Pr...
Forum: Obi Rope
Last Post: miltiadesB
Yesterday, 08:58 AM
» Replies: 11
» Views: 4,142
Efficiently determine act...
Forum: General
Last Post: 4ringz
13-06-2024, 06:18 PM
» Replies: 2
» Views: 52
Finding Rope existence on...
Forum: Obi Rope
Last Post: kripa1415
13-06-2024, 09:37 AM
» Replies: 2
» Views: 49
Cannot generate a bluepri...
Forum: Obi Softbody
Last Post: Gustorvo
12-06-2024, 08:54 PM
» Replies: 2
» Views: 107
please help me with the M...
Forum: Obi Fluid
Last Post: Xingrui Wang
12-06-2024, 11:34 AM
» Replies: 4
» Views: 94
DIINotFoundException when...
Forum: Obi Rope
Last Post: orangefire
12-06-2024, 06:29 AM
» Replies: 2
» Views: 64
Rope connected 3d object ...
Forum: Obi Rope
Last Post: josemendez
10-06-2024, 10:42 AM
» Replies: 7
» Views: 210

  System.ObjectDisposedException: The UNKNOWN_OBJECT_TYPE has been deallocated
Posted by: bugbeeb - Today, 01:25 AM - Forum: Obi Rope - No Replies

Seeing this exception when debugging in visual studio,

System.ObjectDisposedException: The UNKNOWN_OBJECT_TYPE has been deallocated, it is not allowed to access it
  at (wrapper managed-to-native) Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow_Injected(Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle&)
  at Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) [0x00000] in <0652bf0e14024522b5c92574ad0ef550>:0
  at Obi.ObiNativeList`1[T].Dispose (System.Boolean disposing) [0x0003d] in C:\Users\bugbe\SpinnyWheels\Assets\Obi\Scripts\Common\DataStructures\NativeList\ObiNativeList.cs:110
  at Obi.ObiNativeList`1[T].Finalize () [0x00002] in C:\Users\bugbe\SpinnyWheels\Assets\Obi\Scripts\Common\DataStructures\NativeList\ObiNativeList.cs:90

Unity version 2022.3.30
Obi Rope Version 6.5.4

Print this item

  Cloth curtain
Posted by: balaji.v - 13-06-2024, 01:38 PM - Forum: Obi Cloth - Replies (2)

How can we implement a obi cloth curtain that can expand and shrink using controller drag in Quest?


Print this item

  Finding Rope existence on mouse click
Posted by: kripa1415 - 13-06-2024, 08:37 AM - Forum: Obi Rope - Replies (2)

 Is it possible to find if there is any rope exists on mouse clicked position  ?
 something like Physics.OverlapSphere() by passing position and collision radius ?

Print this item

  Efficiently determine actor under ray
Posted by: 4ringz - 12-06-2024, 11:47 PM - Forum: General - Replies (2)


I'd appreciate some quick advice re: whether there's a more performant way to accomplish what I'm trying to do OOTB. For a first-person "grabbing" system I need to get the particle and related Actor (specifically softbody, but right now code works w/ all actors) closest to an origin point with a given ray.

My current code (adapted crudely from the particle picker example scripts) works, but as it's iterating through A) all particle positions and then B) an undetermined number of softbodies and each of their particles again to relate the particle to an Actor, it's quite inefficient, as I may need many softbodies as well as non-softbody particles in my scenes.

If there are cached bounds/extents per Obi actor I could cluster them into volumes, cast the ray through volumes, and then only iterate over each of their particles, but if those structures exist in ObiActor I can't seem to locate them.

Appreciate any help, thanks!

    public ObiActor GetActor(ObiSolver solver, int particleIndex){
        foreach (ObiActor actor in solver.actors){
            for (int i = 0; i < actor.solverIndices.count; i++){
                if (actor.solverIndices[i] == particleIndex){
                    return actor;
        return null;

    public int Raycast(ObiSolver solver, Ray ray, float radiusScale, float maxDistance, Vector3 origin){
        if (solver == null) return 1;

        int hitParticle = -1;
        float closestMu = float.MaxValue;
        float closestDistance = float.MaxValue;
        Matrix4x4 solver2World = solver.transform.localToWorldMatrix;

        // Find the closest particle hit by the ray
        for (int i = 0; i < solver.positions.count; ++i){

            Vector3 worldPos = solver2World.MultiplyPoint3x4(solver.positions[i]);

            if (Vector3.Distance(worldPos, origin) > maxDistance) continue;

            float mu;
            Vector3 projected = ObiUtils.ProjectPointLine(ray.origin, ray.origin + ray.direction, worldPos, out mu, false);
            float distanceToRay = Vector3.SqrMagnitude(worldPos - projected);

            // Disregard particles behind the camera:
            mu = Mathf.Max(0, mu);

            float radius = solver.principalRadii[i][0] * radiusScale;
            if (distanceToRay <= radius * radius && distanceToRay < closestDistance && mu < closestMu){
                closestMu = mu;
                closestDistance = distanceToRay;
                hitParticle = i;

        return hitParticle;

Print this item

  Towel simulation in Quest
Posted by: balaji.v - 12-06-2024, 07:31 AM - Forum: Obi Cloth - Replies (3)


I am working on a VR project where I need to grab a towel using a controller and then fold and unfold it, as well as rub the cloth on other objects with collision.

Could you please suggest possible ways to achieve the above simulation?


Print this item

  please help me with the Mobile Rendering!
Posted by: Xingrui Wang - 11-06-2024, 06:04 PM - Forum: Obi Fluid - Replies (4)

The Obi Fluid works well in Unity Game and Scene both, but After I built it to Android and open it on my Mobile, the others (cubes or gravity) works well, only the liquid doesn't get rengered, I think they exist in scene because the shadow are exist, just I can not see the liquid part, How can I solve this problem?

Can not See in Mobile: Triste

Works normal in Game Scene:

Attached Files Thumbnail(s)
Print this item

  DIINotFoundException when attempting to import ObiRope
Posted by: orangefire - 11-06-2024, 05:21 AM - Forum: Obi Rope - Replies (2)


I was trying to use ObiRope in Unity 2022.3.18f1 URP. When importing the package via Package Manager, I encountered the following errors
[Image: AccJccH]

DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
Obi.OniBackend.CreateSolver (Obi.ObiSolver solver, System.Int32 capacity) (at Assets/Obi/Scripts/Common/Backends/Oni/OniBackend.cs:17)
Obi.ObiSolver.Initialize () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:883)
Obi.ObiSolver.AddActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1148)
Obi.ObiActor.AddToSolver () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:348)
Obi.ObiActor.OnEnable () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:323)

DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
Obi.ObiProfiler.DisableProfiler () (at Assets/Obi/Scripts/Common/Utils/ObiProfiler.cs:84)
Obi.ObiFixedUpdater.Update () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:67)

Not sure how to resolve, as the example scenes don't seem to work (I don't see any rope appearing). Some of the materials are also failing to convert to URP (namely the VertexColor one). Would appreciate any help in resolving this!

EDIT: Reading thru the documentation, I made sure Burst, Jobs, Mathematics, and Collections packages are imported as well. However, when I'm trying to open my project again, I get the following compile error

Assets/Obi/Scripts/Common/Backends/Burst/DataStructures/NativeMultilevelGrid.cs(74,46): error CS1061: 'UnsafeList<K>' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'UnsafeList<K>' could be found (are you missing a using directive or an assembly reference?)

I was able to quickly change the code from contents.length to contents.Length to fix this. Afterwards project was able to open, but I still get the above DIINotFoundException when attempting to play the example scenes.

Print this item

  Rope Collision Detection
Posted by: kripa1415 - 10-06-2024, 08:18 AM - Forum: Obi Rope - Replies (3)

 I have 3 ropes tanged. I am untangling first rope and avoided collision from the other 2 ropes. How do I detect this ?
 I have the on collision subscribed on the solver and getting the contacts. But I want to filter rope wise

RopeGenerator.solver.OnParticleCollision += Solver_OnParticleCollision;

private void Solver_OnParticleCollision(ObiSolver solver, ObiSolver.ObiCollisionEventArgs contacts)
    if (contacts.contacts.Count <= 0)

Print this item

  Help for fluid 7.0 beta demo scene
Posted by: khos85 - 09-06-2024, 03:01 PM - Forum: Obi Fluid - Replies (1)

Hi, in the obi fluid 7.0 beta which I'm playing around with, I do not find this scene:
[Image: upload_2024-5-12_15-19-8-png.1413672]
Would it be possible to share that, I would like to understand how the water/foam is achieved so nicely. Thanks!

Print this item

  Softbody vehicle with many meshes
Posted by: protomor - 08-06-2024, 07:15 AM - Forum: Obi Softbody - No Replies

Howdy! I'm aiming to do BeamNG like crash damage and come to the conclusion that the Obi Softbody for Unity is the best option for that kind of deformation. The cars come in FBX files with multiple meshes under it. Is there a way to programatically load all of them in one go or some guidance on how to create all of this at runtime? Ideally, the meshes will deform and things like doors will come off. It might be simpler to create primative objects that bind to the overall meshes. Any guidance is appreciated.

Print this item