The usual drill. Capsules stacked with Kangaroo 2, image rendered with Cycles. Had to manually delete a bunch of capsules that had their end-points on opposite sides of the glass. To make @nathanletwory happy, the capsules are all block instances, baked into Rhino using a small C# script component.
The nice thing about capsules is that they can be simulated using the Kangaroo line/sphere collision constraint. I have never tried to get custom shapes to collide. Presumably it is possible, just way slower.