+1  A: 

I don't think there's a need to pause the simulation. As you are describing it, it seems that your mouse input (view input) directly changes the model data and the view is updated accordingly when next update/flush/whatever is issued.

Perhaps you could insert a new single particle that's only used during "animation", and that's not coupled to any of the other particles. While introducing this particle, you could hide the real particle (and it's edges). So while moving the mouse you are only updating the data of this animated particle. When the animation ends (you let the mouse go), the animated object is deleted, the real particle is updated with its data and shown again.

In one way this is a form of pause, since you are cheating the updating system. The data of the particle system is not updated during animation, it just looks like you are moving the particle of the real system, when you're in fact just cheating the user graphically. Hope this makes some sense, 2 am here :)

Magnus Skog
This would be an option except as it stands now, the selected particle does affect OTHER particles, it just doesn't get affected itself by them. I do need to keep the particle "in" the simulation. So unfortunately I can't play graphics tricks
colithium
+1  A: 

Change the algorithm that adjusts the viewport to use the cursor's position as the origin of the transformation. That way the viewport and simulation coordinates at the cursor would remain fixed. You could just do this when the mouse is pressed, but it may also have pleasing results if it were done at all times.

It complicates the maths somewhat, but it doesn't seem like you're left with too many options.

Alex Barrett
This is very intriguing, I never thought of that. There would be a quick jump on mouse down but it would be pleasing while dragging the particle around. I'll get back to you :-)
colithium