Jordan Miller uploaded his open source orbital shaker project to Thingiverse.

This is an open-source orbital shaker for mammalian cell and tissue culture and for bench-top science. The orbital shaker fits inside a standard 37 ºC/5% CO2 cell incubator and puts out no heat so you can load up the incubator full of these things. We have used them for 2 weeks now and the design is very simple, inexpensive, and scaleable. Our cells are growing happily in these shakers.

Orbital shakers are typically ~$1,500 and even more expensive if you need one that is designed for a cell incubator so that it will not put out any heat (incubators only have heating and not cooling functions, so if equipment puts out too much heat it will kill all the cells in the incubator).

I used an arduino microcontroller, Pololu stepper motor controller, and an inexpensive stepper motor. A DC motor could have been used but it is very difficult to control the rotational speed with high accuracy since the DC motor rotation speed varies based on load. Instead I used a $10 stepper motor and a pololu stepper motor controller at 1/16th stepping.