Frequently asked questions

General

Why are there several Obi assets in the store?

All the assets share the same core physics solver, and the same philosophy: everything (cloth, fluids, ropes...) is made out of particles, which are small lumps of matter that relate to each other trough the use of constraints. However, most often there's no use for a unified physics engine in games. So instead of having a single, very expensive asset that can simulate all of the above, we split Obi in multiple smaller assets. This way you only pay for what you need, and it is still possible to use all assets together if you own them all.

Upon importing Obi into my project, I see a bunch of "DllNotFoundException: libOni" errors. How can I fix them?

Simply restart Unity. Sometimes, Unity fails to load new native libraries upon importing them. The only way to force a reload is to restart Unity.

Is Obi easy to use for a complete beginner?

It depends on what your goals are. If you want to make something more complex than a simple flag or a water faucet, most likely the answer is no. Obi is a powerful, complex system. If it makes sense for a particular parameter to be exposed to the user, Obi does expose it. No compromises were made in its design to trade flexibility for ease of use. A lot of effort was put into making it 'as simple as possible, but not simpler'.

The good news is that if you devote enough time to it, it will pay off. Also it will help you grasp a lot of essential simulation concepts that can be easily transferred to other physics simulators. And you'll wonder why these other simulators impose so many artificial limits on what you can do with them.

Does Obi run in the GPU?

No. The core physics solver runs 100% in the CPU. Only rendering is done using the GPU.

Can Obi be regarded as a fast simulator, for CPU standards?

Yes. It is extremely well optimized. A task-based multithreading scheme is used to split workload into evenly sized chunks. All the math-heavy routines are SIMD accelerated.

What platforms are currently supported?

Obi's core solver is a native library which must be compiled specifically for each platform. For this reason, we do no support all of the platforms Unity can build for. Currently Obi is compatible with Windows, Linux, OSX, iOS, and Android. We are planning to support XBox and PS4 too. Other target platforms aren´t currently considered, and some (such as WebGL) aren't technically possible to support.

Does it support VR (Virtual Reality)?

Cloth, Rope and Softbodies support VR. For Obi Fluid, you will have to use separate cameras for each eye since the renderer does not support single-pass stereo rendering.

Does it support SRP (Scriptable Render Pipeline)?

Cloth, Rope and Softbodies support SRP out of the box, since they do not perform any custom rendering. Obi Fluid does include a custom rendering pipeline based on screen-space ellipsoid splatting, that is not currently compatible with SRP.

Is the core physics library source code included?

The core physics library used by Obi is known as Oni (japanese for "demon"). It is written in highly portable C++14. Its source code is not included in any of the Obi assets but we do license it on a per-case basis, so contact us if you're interested. Sources for everything else (C# MonoBehaviours, classes, shaders, etc.) are included.

Collisions

I set up colliders as explained in the manual, but I can´t get Obi objects to collide with them. Is this a bug?

Most likely the cause is that your colliders and your Obi actors (cloth, rope, etc.) are using the same phase. Obi requires actors and colliders to be in separate phases in order to generate contacts, as this allows for more fine-grained collision control. Also, keep in mind that PolygonCollider2D is not currently supported. See the collisions manual page for detailed info.