After quite some thought about it, I realized maybe the world node would make most sense as a kind of window/render (something more accurate) property node. This would be equally true for physics, particles, and in the future maybe volumetrics and procedurals as well. Layers and objects should be kept as is, but an addition of "wrapper"-nodes for additional properties for layers/objects would deal with the necessities. Hard to explain, maybe this helps:
An approach like this would take advantage of already implemented solutions, and would make learning how to use it simple, as you only add on to an existing base. If you think about it in the context of "Add [Physics/Particles/Volumetrics/Procedural] to Object], it would be a drop in solution for some pretty nifty stuff for existing projects/compositions.
You also get rid of an additional complexity layer by using objects/layers as the base for forces. This could perhaps be a generic object/point(list) port though for the cases where you only need points for it. This would also prime the solution for the use of volumetrics for flow-fields with 2/3D gradient noise (Density port being a generic image/volumetric/object port).
I also think simplification is key to a good implementation. Is repulsion for instance necessary? Could it just be negative attraction?
I'm starting to ramble, there is a lot to this, but maybe it could be a solution?
I think it's more of a question if box2D is the correct solution to implement for physics-calculations in the first place. As Vuo already has a lot of the base components that you'd want from box2D (layers/bounding boxes/fast memory management etc), I'd wager that it would be a neater and better solution to implement a native system - especially when considering 3D as well.
The physics calculations themselves are pretty straightforward, it's all the stuff around it that is the hassle. I have tried to make a few physics-ish-nodes, but the issue is mostly how to make a good user experience in the line of; do you want it to input layers/objects and manipulate them? Or do you want to generate layers from a master node? Do you want a "world" node to connect layers to? Or could a "Make Layer/Object with Physics" node be simpler? Knitting together a nice workflow is probably the largest piece of the puzzle, but that is an issue if you use box2D as well
In a custom library node, all changes should be done through published ports, not through edits of each node itself. If it is for creating more instances of similar nodes, you can save as to the user modules folder. If it is for edited copies of a node, you can copy/paste instead of making a library node.