Let's take a quick look at Obi's core components and the role they play:
A solver is a component that physically simulates all actors found inside its hierarchy. You can choose between multiple backends to perform the simulation. Solvers expose a few global simulation parameters such as gravity, inertia scale, velocity damping, or constraint settings.
A blueprint is an asset that stores a bunch of particles and constraints. It does not perform any simulation or rendering by itself. It's just a data container, not unlike a texture or an audio file. Blueprints are generated from meshes (ObiCloth and ObiSoftbody), curves (ObiRope) or material definitions (ObiFluid).
An actor is a component that instantiates a blueprint inside a solver. All actors must be children of a solver. Multiple actors can share the same blueprint, in fact reusing the same blueprint as much as possible is encouraged. Examples of actors are a rope, a flag, a bouncy jelly, or a water emitter.
Here's a diagram showing a scene with two solvers: one simulating 3 identical cloth pieces, and another one simulating 2 identical ropes:
Each solver maintains several lists or per-particle properties: positions, velocities, radii, etc. Initially, these lists are empty. Whenever a new actor is added to a solver, these steps take place:
Once an actor has been added to a solver, it is included in the simulation.