Python port of Caustic