Search Forums

(Advanced Search)

Latest Threads
Wade - A Fly Fishing simu...
Forum: Made with Obi
Last Post: josemendez
4 hours ago
» Replies: 1
» Views: 28
Color Weave - A GameJam P...
Forum: Made with Obi
Last Post: josemendez
4 hours ago
» Replies: 1
» Views: 8
Missing Ref Exception on ...
Forum: Obi Rope
Last Post: josemendez
15-06-2026, 08:08 AM
» Replies: 3
» Views: 202
Stitcher breaks simulatio...
Forum: General
Last Post: Qriva0
13-06-2026, 02:41 PM
» Replies: 5
» Views: 3,342
Suture issues between rop...
Forum: Obi Softbody
Last Post: josemendez
10-06-2026, 02:36 PM
» Replies: 1
» Views: 146
Oculus and Softbodies
Forum: Obi Softbody
Last Post: Trogdor
28-05-2026, 09:28 AM
» Replies: 4
» Views: 663
Jittery edges on softbody
Forum: Obi Softbody
Last Post: Matthias
27-05-2026, 04:06 PM
» Replies: 8
» Views: 1,057
Looking for suggestions o...
Forum: Obi Rope
Last Post: trentthebaker
25-05-2026, 06:16 PM
» Replies: 3
» Views: 464
Obi Rope Contraint Settin...
Forum: Obi Rope
Last Post: josemendez
25-05-2026, 08:30 AM
» Replies: 2
» Views: 369
Extend lifespan and strea...
Forum: Obi Fluid
Last Post: josemendez
22-05-2026, 06:27 AM
» Replies: 1
» Views: 288

 
  Color Weave - A GameJam Project
Posted by: vendolis - Yesterday, 06:02 PM - Forum: Made with Obi - Replies (1)

I recently take part in a GameJam to create my game prototype "ColorWeave". The theme was connection and I instantly thought of Obi Rope to to simulate ropes of color.
The game is very limited, as it is normal for a gamejam project, but still was fun to make and play: https://vendolis.itch.io/color-weave
It scored 70th of 833 overall and 20th in theme. 

It was a fun experiences esp to keep the rope steady and under tension, while not over stretching it. I kind of wish there was a "tensioner" for the rope that keeps the rope at a specific tension all the time. I wrote something that goes into that direction, but it is quite clunky.

I also wished there was more documentation on how the rope collisions are calculated, since apparently they are done around the 0-coordiantes and you can collide with them, even though collisions are turned off for the rope. I noticed that this is why the rope demo is off axis. It took me a while to understand the intricacies around this. Naturally I also would love for this to work in WebGL, but even though Burst is now available, it was too slow to work and I had not time to dive in deeper.

Print this item

Corazón Wade - A Fly Fishing simulation in VR
Posted by: Balou - 16-06-2026, 07:22 PM - Forum: Made with Obi - Replies (1)

I don't remember when I started on this project, i think the first prototype was 3-4 years ago, I learn to use Obi Rope quickly after and it was (and still is) the perfect tool for that.
I've had amazing feedbacks on the rope sim and the rod loading, the way it moves with the river current. 
So yeah here is my made with Obi: Wade, with a demo available on Steam if you want to give it a try!



The rope sim runs fine on a Quest 2 (it's CPU so not a problem) and I'm still using obi 6.X. 
Tell me what you think!

Print this item

  Suture issues between rope and softbodies
Posted by: Trogdor - 10-06-2026, 11:40 AM - Forum: Obi Softbody - Replies (1)

Hi,

So I have upgraded my design to a suture study. I have a needle with a dynamic particle attachment to an ObiRope, and then I am using a sphere as a dynamic particle attachment to anchor the rope. The sphere has an ObiCollider attached to it, so that it can't pass through the tissue.

I have two softbodies, one acting as the left tissue and the other as the right tissue. I have a static particle attachement on those connecting the particles at the bottom of the tissue to the tabletop, to keep them rigid.

I am using Unity 6.3, and Obi 7.1, and both actors are assigned the same solver.

What I would like to see is that when the rope passes through the two softbodies, and force is applied to the rope, the tissue pulls together, with the aim to have this occur when a knot is tied.

My graspers interact with the tissue and can move it around, and they can pickup the needle. I have setup that when the needle punctures the tissue it connects to the nearest traingle and attaches a gameobject for the entrance and exit points. Then, when the rope passes through the tissue, it creates pinholes so that the thread passes through the tissue. What I am struggling to do is create and attachment between the rope and the tissue to generate the tissue deformation I am expecting, or that I am going about this entirely wrong. I know there are a number of people that have created suturing demos on here, but most link back to either a DaVinci DVKR or haptic controllers, whereas I am trying to do it in the oculus. I have been trying to use this paper as an examplar, specifically fig 19.

If anyone can provide some assistance that would be wonderful.

Thanks.

Print this item

  Missing Ref Exception on ObiRigidbody2D
Posted by: YouKou - 08-06-2026, 10:26 AM - Forum: Obi Rope - Replies (3)

Hi,

After upgrading from Obi 7.0.5 to 7.1.1 I started getting the following exception when I enter play mode:

Code:
MissingReferenceException: The object of type 'Obi.ObiRigidbody2D' has been destroyed but you are still trying to access it.
ObiRigidbody2D.CacheVelocities() at ObiRigidbody2D.cs:61
ObiRigidbody2D.UpdateIfNeeded() at ObiRigidbody2D.cs:71
ObiColliderWorld.UpdateWorld() at ObiColliderWorld.cs:650
ObiSolver.Initialize() at ObiSolver.cs:1330

After a bunch of debugging I was able to identify the root cause. Not sure if this is a known issue or not, so I elected to make a post rather than edit the source code with a potential fix.

According to my findings the bug is a race condition during initialization (Application.isPlaying is still false at this point, not sure if relevant)
I believe this is the sequence of events:

1. An ObiCollider's OnEnable fires and creates a collider handle
2. An ObiActor gets enabled, triggering ObiSolver.Initialize() -> ObiColliderWorld.UpdateWorld()
3. During UpdateWorld(), the ObiCollider accesses its Handle property, which creates a rigidbody handle via CreateRigidbody() (after checking if (rigidbodyHandle == null)) and assigns owner - this is HANDLE A (the first handle for this object)
4. ObiRigidbody.OnEnable() fires later and unconditionally calls CreateRigidbody() again, creating HANDLE B for the same body
5. Both handle A and handle B now exist in rigidbodyHandles
6. At some point the ObiRigidbody2D components get disabled, causing OnDisable() to fire for each:

Code:
public void OnDisable()
{
    ObiColliderWorld.GetInstance().DestroyRigidbody(rigidbodyHandle);
}

7. This specifically causes an issue for the object that got double-registered, OnDisable() only knows about the handle currently stored in rigidbodyHandle, which is handle B. It calls DestroyRigidbodyData(handleB), which uses a swap-and-remove pattern:

Code:
private void DestroyRigidbodyData(ObiRigidbodyHandle handle)
{
    if (rigidbodies != null && handle != null && handle.isValid && handle.index < rigidbodyHandles.Count)
    {
        int index = handle.index;
        int lastIndex = rigidbodyHandles.Count - 1;
        rigidbodyHandles.Swap(index, lastIndex);
        rigidbodies.Swap(index, lastIndex);
        rigidbodyHandles[index].index = index; // updates the swapped handle's index
        handle.Invalidate();
        rigidbodyHandles.RemoveAt(lastIndex);
        rigidbodies.count--;
    }
}

8. Handle B is swapped to the last position, removed, and invalidated. The swap may also move handle A to a new position and update its index. Handle A is never invalidated and no code holds a reference to it anymore, so DestroyRigidbody is never called for it
9. Handle A remains in rigidbodyHandles - still appearing valid (isValid is true), but its owner is a now-destroyed ObiRigidbody2D
10. On the next UpdateWorld() call, iterating rigidbodyHandles hits handle A -> MissingReferenceException

The Handle property getter already has a null-check to prevent duplicate creation, but ObiRigidbody.OnEnable() does not:

// Handle getter - has null check (safe)

Code:
if (rigidbodyHandle == null)
{
    rigidbodyHandle = world.CreateRigidbody();
    rigidbodyHandle.owner = this;
}


// OnEnable - no null check (creates duplicate)

Code:
protected virtual void OnEnable()
{
    rigidbodyHandle = ObiColliderWorld.GetInstance().CreateRigidbody();
    rigidbodyHandle.owner = this;
}

Only one object ends up with a duplicate because the race condition depends on the specific initialization order; only the object whose ObiCollider initializes before its ObiRigidbody AND before the solver finishes initializing will hit this path.

This did not occur in 7.0.5 for me, not really sure why.

The current simple fix that works for me is adding the null check to onEnable() as well; but as I said I wanted to check if this issue has a fix on the way, or if there is a known way to avoid this situation. I also don't get the exception if I enter play mode with the rigidbody disabled then enable it manually later (which makes sense since we avoid the init order issues entirely).

Is there a fix on the way? or a best practice that I'm forgetting that avoids this issue?

Thanks in advance!

Print this item

  Obi Rope Contraint Settings buggy
Posted by: Shirley55 - 23-05-2026, 05:49 PM - Forum: Obi Rope - Replies (2)

Hi there!

I have a problem with my ObiRope Settings! 

This is my Setup: I have three levels. I added my character prefab to each level. This Prefab has an Obi Solver plus Rope attached to it. The Obi Solver itself is not a prefab, but the parent object. Also, in each level, they have the same Blueprint asset. I have a TestScene, where I first set up the whole Character prefab. Then i copied the Prefab into the other scenes.

This is what I want to do: For each Level I want my character to have different Tear Resistance and Stretching Compliance, the rest of the rope settings should be exactly the same. 

Exclamación This is my problem: In my Levels, the rope doesn't adopt the changed settings that I just made. It always stays the same length. Or it has settings from another level.  

What I tried to do: I tried to create a new blueprint in the separate levels, but also then, the rope took settings from a different level. I unpacked the prefab, so the Obi solver is not a prefab anymore. Still the same issue. In my testscene though, I have a script where i can change the settings on key press and this perfectly works.

So my main question is, how can i have the same rope across multiple scenes and then change only 2 variables?

I would be really happy about some help and maybe someone could explain to me, how blueprints actually work and what information they safe.
Thanks you in advance! Corazón

Shirley55

Print this item

  Looking for suggestions on a physical-feeling rope extension
Posted by: trentthebaker - 22-05-2026, 06:42 PM - Forum: Obi Rope - Replies (3)

Hello, I'm revisiting a problem that I ran into a while ago but wasn't able to figure out. I had made an old thread previously.

In short, I'm hoping to use ObiRope to make a rope that reliably extends based on force applied. I've seen in a few threads the recommended approach is to find the "strain" by comparing rope.CalculateLength and rope.restLength, but I find the result of this calculation doesn't cleanly translate to force on the end of a rope in a lot of cases. I am hoping to find something that feels like a magician pulling scarves out of their sleeve- maybe a cursor can't achieve the feel I'm going for?

I'd appreciate any tips!

Trent

Print this item

  Jittery edges on softbody
Posted by: Matthias - 22-05-2026, 10:36 AM - Forum: Obi Softbody - Replies (8)

Hey, I'm making a project where I have an attached softbody that is able to be deformed, but I'm running into some issues.

The goal is for the mesh in the image below to be attached to the table it is on, this table is a static object.
Currently the issue I've been running into is that when I use an Obi Particle Attachment and bind the bottom particles of the softbody to the table, the top edges of the mesh begin to jitter, as seen through the deformation in the screenshot below.

The mesh is set up similarly to the dragon from the sample scene, having split the soft body from the skinner and renderer, though the issue remains when I have it all as 1 object.

[Image: image.png?ex=6a1174ee&is=6a10236e&hm=a0d...af847fada&]

When the mesh is placed on the table without an Obi Particle Attachment it is fully alright, similarly if I enable Constraint Orientation the mesh is also stable, but does not store any deformation that occurs to it, bouncing back to its original shape the second the collision ends.

I've tried quite a few things already, such as increasing my substeps, all variations of the blueprint generation using Surface and Volume sampling, and I've confirmed that it's likely not an issue related to my solver since the issue also occurs when I place this mesh in the DeformableBarrels sample scene.

The mesh does currently stay deformed after any collisions, the jittering is the only problem I'm having.

Does anyone have any suggestions as to how I can get this jittering to stop?
I would greatly appreciate any input, thanks already!

Print this item

Pregunta Extend lifespan and stream time
Posted by: PortableAnswers - 22-05-2026, 12:21 AM - Forum: Obi Fluid - Replies (1)

Hello, from what I've experimented with, it's a trade off between lifespan and the stream time. For instance, if my lifespan is 5 seconds then I can only have a stream for a few seconds until it stops and I must wait while the spawned fluid despawns. Am I understanding this correctly and is there a way to keep the stream going regardless of the life span? Thank you!

Print this item

  Water Tunneling Through Mug When Grabbed in VR (Unity 6.3+Obi 7.1.1+XR Interaction)
Posted by: Archarya - 20-05-2026, 02:24 PM - Forum: Obi Fluid - Replies (1)

I'm working on a VR application where players need to fill a mug with water and pour it onto trees. I'm running into an issue with the Obi fluid behaviour when the mug is grabbed.

Current Setup:
- Unity 6.3
- Obi 7.1.1
- XR Interaction Toolkit

What's Working:
- The mug fills with water correctly
- The player can grab and move the mug using XR Interaction Toolkit


The Problem:
When the player grabs the mug, the water starts tunneling through the container instead of staying inside and moving with the mug.

Video link: Tunneling issue link


Questions:
1. Is there a specific way to configure the Obi Collider or Obi Solver when using XR grabbable objects?
2. Do I need to adjust the rigidbody settings on the mug when it's grabbed?
3. Are there any known compatibility issues between Obi Fluid and XR Interaction Toolkit's grab mechanics?

Print this item

  Oculus and Softbodies
Posted by: Trogdor - 18-05-2026, 04:57 PM - Forum: Obi Softbody - Replies (4)

I am trying to develop a simulator in VR using ObiSoftbody and ObiRope. Essentially, weaving a rope through one softbody, and then through the other and pulling them together, but alas I am having issues. Also, I am very new to Unity so please bare with me.

I created two softbodies cubes that are small in scale, 0.05x0.02x0.035. I added a blueprint that had the same scale which are voxels with a resolution of 36. I tried to make the voxels at the bottom have a mass of 0 and those above with a mass of 1, to keep them stuck to the surface. When I added them to the scene the squished into a puddle. To fix this, I turned off the gravity and now they deform and float before stabilising in the air. Even when I adjust the gravity I am having the same issue. Ideally, I want them to just be stationary in the scene unless an object I am holding pushes against them, in which case only the top of the softbodies should react.

Thanks in advance. I you require more details about my setup, please let me know and I will do my best.

Print this item