For the Bachelor Thesis of Andy and Dustin Augsten and later Jonas Dech CRAM was newly implemented in Python. The purpose behind this decision was to make the concepts of CRAM easier accessible to a wider audience.

Currently PyCRAM doesn't include all features of CRAM but the core features are implemented for example the CRAM Plan Language, Process Modules, Motion Designator, the BulletWorld and it's reasoning. While a lot of features, that are already in CRAM, aren't yet implemented in CRAM it is already possible to write a functioning plan for a robot (see the second demo here). With the BulletWorld it is also possible to simulate this plans for testing or to plan future actions. The reasoning mechanisms of the BulletWorld allow to get information about the relationship of two objects in the BulletWorld.

Currently the CRAM Team also works to implement new features for PyCRAM so stay tuned for more updates.