Some mates of mine asked me about about Physics Illustrator last night, and I googled it... whoa boy! I've never seen such love and praise written about any piece of code I've touched.
The outpouring of love and excitement over Physics Illustrator really surprises me. It's a fun and compelling demo app, no doubt. But as an actual end-user app, it leaves much to be desired. The UI is completely undiscoverable (hint #1: read the help file, seriously) and without an undo feature, it can be quite frustrating to use.
Also, the palette of widgets and mechanisms is pretty limited: ellipses and polygons vs springs, ropes, rods and pin-joints. There was no time to complete the implementation of pulleys, for example -- an obvious omission, which would've opened up a whole sea of new interesting scenarios, if we'd had time to polish that off.
In hindsight, I spent waayyy too much time on the polygon-straightening
feature. (It's neat, and it works, but really only if you draw the polygon
quite carefully to begin with. Oh well, it was a fun and challenging
problem to hack at for a few weeks... it's PolygonRegularizer.cs in the
source code, for the curious.)
Anyway, I promised some hints. By far the most interesting / least discoverable feature is the ability to "stick" two objects together, until something bumps into them, triggering separation. From the help file (see hint #1, above):
Overlapping Bodies
If a free body is drawn (or repositioned) such that it overlaps a stationary body, it will “stick” to the stationary body until another body collides with it. If two or more free bodies overlap, the simulator will attempt to separate them, before starting animation, within the constraints of the environment.
Download this sample file to see an example of this powerful feature in action. The cannon scenario also makes use of another trick: a tightly coiled, and tightly compressed spring. To draw a tightly coiled spring, simply draw a spring with a lot of loops. From the help file:
Spring Connectors
A spring is an elastic connection between bodies. The stiffness of the spring is determined by the net coil of the stroke. A spring drawn with six coils is twice as stiff as a spring drawn with three coils.
The thing to realize is that springs are "relaxed" at the length you originally draw them. This is not explicitly called out in the help file, but you can compress or stretch a spring by dragging one or both of the endpoint objects after drawing the spring. Voila -- potential energy unleashed!

