Mathematica source:

<< ComputationalGeometry` pts=Join[RandomReal[{-1,1},{45,2}]^3-0.4,RandomReal[{-1,1},{45,2}]^3+0.4]; pts=RandomReal[{-1,1},{50,2}]; edges=Union[Union/@Flatten[(Function[y,{#1,y}]/@#2)&@@@DelaunayTriangulation[pts],1]]; springk=1&/@edges; masses=1&/@pts; kmat=SparseArray[Join[edges,(Reverse/@edges )]->Join[springk,springk]]; normalized[v_]:=If[v.v>0,v/Sqrt[v.v],v]; indices=Union[Flatten[edges]]; normals=Table[normalized[pts[[i]]-pts[[j]]],{j,1,Length[indices]},{i,1,Length[indices]}]; (* After linearization, you find that, if kmat[i,j] is the spring constant between points i and j and "normals" is pts[[i]]-pts[[j]] normalized and {a[i,1],a[i,2]} is the magnitude of the small oscillations, the force on a point i due to all the other springs j is: Sum[-kmat[i,j] normals[i,j] normals[i,j].({a[i,1],a[i,2]}-{a[j,1],a[j,2]}),{j,1,3}] *) system=Chop@ Eigensystem[(SparseArray[Flatten[Table[{ {2i+s-2,2j+l-2}->kmat[[i,j]] normals[[i,j,l]]normals[[i,j,s]]},{j,1,Length[indices]},{l,1,2},{i,1,Length[indices]},{s,1,2}]]]- SparseArray[Flatten[Table[{2i+s-2,2i+l-2}->Sum[kmat[[i,j]]normals[[i,j,l]] normals[[i,j,s]],{j,1,Length[indices]}],{i,1,Length[indices]},{s,1,2},{l,1,2}]]] )]; system={Sqrt[-#[[1]]],Partition[#[[2]],2]}&/@Transpose[system[[All,;;-4]]]; pt2[n_,t_,i_]:=pts[[n]]+0.1system[[i,2,n]]Cos[system[[i,1]]t]; plotme[t_,i_]:=Graphics[{ Green,Thin,Dashed,Line[{pt2[#1,t,i],pt2[#2,t,i]}&@@@edges],Black,Table[Disk[pt2[j,t,i],0.03],{j,1,Length[pts]}]},PlotRange->{ {-1.1,1.1},{-1.1,1.1}}];

Then call plotme[t,i] for time t and mode i. Make sure 1<=i<=Length[system].

Things to Click

VisualInsight :
John Baez's Visual Insight blog focuses
on visual aspects of mathematics, and presents material in a way that is both
great for broad audiences, and great for leading the mathematically inclined
further into the topic. The images are compiled from other mathematicians and
programmers.

acko.net : “Hackery, Math, and Design”. Steve Wittens
of acko.net wrote the best tutorial on Julia sets I’ve ever seen, and writes fantastic
presentations that are sure to inspire a new generation to
do away with PowerPoint.

georgehart.com : George W
Hart creates varied sculpture based on mathematical principles. His work
inspired my video, “I Heart Group Theory and So Can You”,
and I recommend that you check
out and build his slide together constructions!

markjstock.org : Mark J. Stock produces work based on computational
physics. He’s inspired to try new simulations and projects, and to change the
techniques I use in my own physics simulations. His youtube channel is full of
hypnotizing pieces and slow, sloshing, detailed fluid mechanics simulations.

segerman.org : Henry Segerman is a mathematics professor with a lot
of great work, including collaborations with youtuber and artist Vi Hart, and a book,
Visualizing Mathematics with 3D Printing

worrydream.com : Bret Victor, a designer who has worked for Apple,
tends to focus on interactivity and the visionary futures of user experience.
His article Ladder of Abstraction
perfectly captures some aspects
of thinking that are ubiquitous in mathematics and physics.