Houdini's "explode node" in Animation Nodes Not sure how to explain the question clearly, but I will give it a try.

I wanted to simulate "Explode Node" in Houdini, which basically rather simple and I think in Sverchok I manage to do that, but kind of overcomplicated somewhat.

It's actually super simple. And the answer is probably lie in using Vector and Matrix.

Supposed I have bunch of objects in the scene. From those objects each in position in the scene, user provides a custom Empty position, or some kind of Math formula to find the center of mass of the group. Then from that point, I wanted to just push the position of each object away from that point reference empty.

I tried just now, but I make all the objects fly away. This is because I probably doing it inside the loop?

I can't do "Apply Matrix" inside AN ala Sverchok to have the "default position" of each object.

Currently my logic is simply using Vector Add while referencing each object pivot. But I seem to just push all the objects away.

Should I... perhaps create a reference pivot using instance and that reference should not be looped?

---- MORE INFO

I need a way to keep the Matrix transform of object in "current original position", and then push each of the object apart from X point position. I don't want to make each object fly away.

It's kind of when dealing with TEXT object, and I want to have control over each of character letter position, and then adding to that current position.

---- REPHRASING THE QUESTION
Just like what we can do with Text Object (separating into letter), I would really like to do the same to Group Objects or Joined objects.

Manually by hand:
1) Multiple objects in the scene. Joined or Group them
2) Separate them again, control the pivot, usually centered.
3) Now, I would like to control each and every object from here, this position. Probably wiggle, but in this particular question, I just want them to drift and pushed away based on 1 single point position.
4) That way, we have explode in or out effect.
If I understand you correct, what you essentially need is a way to store the initial transformation of objects.

Fortunally Animation Nodes (AN) has an in-build system for that. It is called the ID-Key system (the name comes from the fact that it can theoretically work with all types of ID-Objects in Blender)

Using it is relatively simple - if you know about it:


Select all objects whose transformation you want to save in an ID Key.
Go to the AN tab in the toolshelf of the 3D View and open the ID Keys panel. There you have to click the "From Current Transforms" button. This will store the location, rotation and scale of each selected object in custom properties. You can also see them in the object settings.

Open the node editor, insert a Object ID Key node, click Choose Key and select Initial Transformation. Now you can get the initial location, rotation, etc of the object you have as input. The Initial Transformation of an object does not change unless you press that button again.



The ID-Key system is a generic solution to the underlying problem of storing values per object that are not changed by your nodes. 

The same system is used by the Separate Text Object node. If you look at the template, it also uses the Object ID Key node. Also it does not only store the initial transformation of a letter but also the inital text-value.